#include <string>
#include <iostream>
//using namespace std;

template <typename T>
inline T const max(T const a, T const b)
{
    return (a < b) ? b : a;
}

int main()
{
    int i = 42;
    int j = 34;
    std::cout<<"max(42, 34) : "<<::max(i, j)<<std::endl;

    double f1 = 3.4;
    double f2 = -7.8;
    std::cout<<"max(3.4, -7.8) : "<<::max(f1, f2)<<std::endl;

    std::string s1 = "mathematics";
    std::string s2 = "math";
    std::cout<<"max(\"mathematics\", \"math\") : "<<::max(s1, s2)<<std::endl;

    return 0;
}

